iT邦幫忙

2023 iThome 鐵人賽

DAY 17
0
AI & Data

ㄟ唉廚房交響樂 多智能的煮飯秀系列 第 17

Day17 AI 社區跑起來!

  • 分享至 

  • xImage
  •  

撐了這麼多天的理論與安裝的前置作業,終於,我們可以來實際跑實驗拉!

開啟環境服務器

專案的後端是用Django建設的,所以我們在使用服務得時候,可以很輕鬆透過瀏覽器去控制與觀看結果。接下來要跑兩個後端服務,一個是環境的服務,一個是agents的。

cd environment/frontend_server
python manage.py runserver

https://ithelp.ithome.com.tw/upload/images/20230930/20121110FKWHBrJig3.png

然後接著瀏覽器輸入網址到 http://localhost:8000/ 如果看到 "Your environment server is up and running," 就代表服務正常運行。另外,官方建議瀏覽器用Chrome 或 Safari,用 Firefox 或 Brave 可能會發生些問題。

開啟模擬服務器

接著要開始agents的服務。

cd reverie/backend_server
python reverie.py # 如果遇到 movementFolder bug,請參考下方

接著服務器會跳出 "Enter the name of the forked simulation: " 此時就可以來建立我們的AI agents了。 輸入:

# "Enter the name of the forked simulation: " 
base_the_ville_isabella_maria_klaus
# "Enter the name of the new simulation: "
test-simulation
# "Enter option: " 跑多少回合,這邊直接跑 100, 1代表跑10秒
run 100

此時在網頁瀏覽器輸入 http://localhost:8000/simulator_home 就可以觀察看到社區的運作囉!這邊可以透過方向鍵去移動,整個模擬的觀察畫面。
https://ithelp.ithome.com.tw/upload/images/20230930/20121110Cx3Fvec6RR.png
最後如果要直接離開,可以在終極端輸入 exit,儲存則輸入 fin。

解決 movementFolder bug (可選)

在跑 reverie.py 可能會出現bug,這邊我們要到 reverie.py 修改 401 行

  curr_move_file = f"{sim_folder}/movement/{self.step}.json"
  with open(curr_move_file, "w") as outfile:
    outfile.write(json.dumps(movements, indent=2))

新增三行

  curr_move_file = f"{sim_folder}/movement/{self.step}.json"
  # ========= new =========
  movementFolder = f"{sim_folder}/movement"
  if not os.path.exists(movementFolder):
      os.mkdir(movementFolder)
  # =======================
  with open(curr_move_file, "w") as outfile:
    outfile.write(json.dumps(movements, indent=2))

重播

如果你想重播看實驗過程,可以照著 http://localhost:8000/replay/(simulation-name)/(starting-time-step) 格式輸入,

  1. simulation-name 模擬事件的名稱
  2. starting-time-step 時間點

也可以參考官方的實驗,在瀏覽器輸入 http://localhost:8000/replay/July1_the_ville_isabella_maria_klaus-step-3-20/1/

如果採用上面方式,你可能會觀察到智能體長得一樣,那是因為在一開始的時候,觀察實驗結果並沒有把這個考慮進去,也就是能跑就好,如果要解決這個問題可以參考以下的方式。
打開 reverie 的 compress_sim_storage.py,做編輯,把 compress 裡面的字串,換成你要壓縮的模擬事件名字,例如 -> compress("July1_the_ville_isabella_maria_klaus-step-3-9") 再執行檔案

python compress_sim_storage.py

這樣 environment/frontend_server/compressed_storage 底下就可以看到跳出 July1_the_ville_isabella_maria_klaus-step-3-9 的資料夾了!

接著開啟瀏覽器輸入該格式的URL http://localhost:8000/demo/(simulation-name)/(starting-time-step)/(simulation-speed) ,(simulation-speed)代表播放的速度

可以參考官方提供的過去實驗紀錄,輸入 http://localhost:8000/demo/July1_the_ville_isabella_maria_klaus-step-3-20/1/3/ 我們就可以看到完整實驗的過程囉!
https://ithelp.ithome.com.tw/upload/images/20230930/20121110R2Q38Mze3t.png
https://ithelp.ithome.com.tw/upload/images/20230930/201211104OJQAUs13U.png
可以點選人物的icon,追蹤人物目前的狀態。

總結

到這邊,長達九篇的AI社區終於告一段落了!開源的generative_agents真的是很方便的框架,讓我們可以做許多模擬實驗,開源短短不到一個月,就有人用它做公司的模擬,真的是還蠻期待未來會有更多有趣的應用出現,不過我覺得整體的前提是建立在ChatGPT的語言模型下,如果未來能有客製化的語言模型,對話內容可以做得更口語化,應該會變得更吸引人,或更體現出人情味,不過這也代表,有很多AI相關的議題,也需要我們更深入的思考。

參考

  1. Generative_agents https://github.com/joonspk-research/generative_agents
  2. movementFolder https://github.com/joonspk-research/generative_agents/pull/19

上一篇
Day16 AI 社區 環境設定
下一篇
Day18 Too_many_cooks 廚房做菜嗨起來
系列文
ㄟ唉廚房交響樂 多智能的煮飯秀30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言